#

| Chapter 4 The Bourne Shell and Korn Shell |

## eval

    eval args

Typically, eval is used in shell scripts, and `args` is a line of code that contains shell variables. eval forces variable expansion to happen first and then runs the resulting command. This "double-scanning" is useful any time shell variables contain input/output redirection symbols, aliases, or other shell variables. (For example, redirection normally happens before variable expansion, so a variable containing redirection symbols must be expanded first using eval; otherwise, the redirection symbols remain uninterpreted.) See the C-shell eval (Section 5) for another example.

### Example

This fragment of a Bourne shell script shows how eval constructs a command that is interpreted in the right order:

>     for option
>     do
>        case "$option" in   #define where output goes
>           save) out=' > $newfile' ;;
>           show) out=' | more' ;;
>        esac
>     done

>     eval sort $file $out

Reference: esac |  | Reference: exec